System.security.allowDomain()

Доступность

Flash Player 6; изменён в Flash Player 7.

Синтаксис

System.security.allowDomain("domain1":String, "domain2", ... "domainN") : Void

Параметры

domain1, domain2, ... domainN Строки, которые определяют домены с которых осуществляется доступ к объектам и переменным в файле, содержащем вызов System.Security.allowDomain(). Домены могут быть отформатированы следующим образом :

Описание

Метод; Разрешает SWF файлам с определённых доменов доступ к объектам и переменным в вызванном SWF файле или в любом другом файле SWF с того же домена, что и вызванный файл SWF.

В файлах, проигрываемых в Flash Player 7, параметры должны соответствовать правилам идентичности доменов. Например, для разрешения доступа SWF файлов, размещенных на www.domain.com или store.domain.com, оба доменных имени должны быть переданы :

// Для Flash Player 6
System.security.allowDomain("domain.com");
// Передача параметров для разрешения доступа файлам SWF 
// которые проигрываются в Flash Player 7
System.security.allowDomain("www.domain.com", "store.domain.com");

Для файлов, проигрываемых в Flash Player 7, вы не можете использовать этот метод для SWF файлов, размещенных с использованием протокола (HTTPS), для доступа файлов SWF, размещенных в нережимных протоколах; вместо этого метода вы должны использовать System.security.allowInsecureDomain().

Иногда вы можете столкнуться со следующей ситуацией: вы загружаете файл SWF с некоторого домена и ожидаете доступ этого файла к коду в родительском SWF файле, при этом вы не знаете конечного домена с которого дочерний файл будет загружен. Это может случиться, например, когда вы используете загрузку с перенаправлением или third-party серверы.

В этой ситуации, вы можете использовать свойство MovieClip._url, как аргумент для этого метода. Например, если вы загружаете SWF файл в my_mc, вы должны вызвать System.security.allowDomain(my_mc._url).

При этом вы должны убедиться в том, что SWF файл загружен в my_mc, так как свойство _url не может быть определено, пока файл полностью не загружен. Для определения окончания загрузки SWF файла используйте MovieClipLoader.onLoadComplete.

Может произойти противоположная ситуация; то есть, вы создаёте дочерний SWF файл, с тем, чтобы родительский файл мог использовать его код, но не знаете с какого домена родительский файл будет загружен. В этой ситуации, вызовается System.security.allowDomain(_parent._url) в дочернем SWF. При этом, вы не должны ожидать окончания загрузки родительского SWF файла; он будет загружен до загрузки дочернего файла.

Пример

SWF файл, размещенный на www.macromedia.com/MovieA.swf , содержит следующий код :

System.security.allowDomain("www.shockwave.com"); 
loadMovie("http://www.shockwave.com/MovieB.swf", my_mc);

Так как MovieA содержит команду allowDomain(), MovieB может обратиться к объектам и переменным в MovieA. Если бы MovieA не содержал эту команду, реализация безопасности Flash предотвратила бы доступ MovieB к, имеющимся в MovieA, объектам и переменным.

См.также

MovieClip._url, MovieClipLoader.onLoadComplete, _parent, System.security.allowInsecureDomain()